package org.new9uy.tetris.view;

import org.new9uy.tetris.game.player.Player;

/* 
 * Toutes les valeurs de retours commence avec une miniscule et n'on pas de
 * point � la fin (sauf qqe exceptions).
 */
public class Lang 
{
    /*
	private int lang;
	public static final int EN = 0;
	public static final int RU = 1;
	
	public Lang(int lang) 
        {
		this.lang = lang;
	}
	
	public void setLanguage(int lang)
        {
		this.lang = lang;
	}
	public int getLanguage()  
        {
            return lang;
        }
	
	//----------------------------------------------------
	//  MENU TEXT
	//----------------------------------------------------
	public String survival() 
        {
		switch(lang)
		{
		case EN: return "Survival";
		case RU: return "Выживание";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String about(){
		switch(lang)
		{
		case EN: return "About";
		case RU: return "О программе";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String sticksAndStones() {
		switch(lang)
		{
		case EN: return "Sticks and Stones";
		case RU: return "Палки и камни";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String gameType() {
		switch(lang)
		{
		case EN: return "Game Type: ";
		case RU: return "Тип игры: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String teams(){
		switch(lang)
		{
		case EN: return "Teams: ";
		case RU: return "Команды: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String singlePlayer(){
		switch(lang)
		{
		case EN: return "Single-player";
		case RU: return "Одиночная игра";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String multiPlayer(){
		switch(lang)
		{
		case EN: return "Multi-player";
		case RU: return "Мультиплеер";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String exit(){
		switch(lang)
		{
		case EN: return "Exit";
		case RU: return "Выход";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String easy(){
		switch(lang)
		{
		case EN: return "easy";
		case RU: return "легкий";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String medium(){
		switch(lang)
		{
		case EN: return "medium";
		case RU: return "нормальный";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String hard(){
		switch(lang)
		{
		case EN: return "hard";
		case RU: return "тяжелый";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String insane(){
		switch(lang)
		{
		case EN: return "ridiculously insane";
		case RU: return "смешно безумный";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String race(){
		switch(lang)
		{
		case EN: return "Race";
		case RU: return "Гонка";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String zedeness(){
		switch(lang)
		{
		case EN: return "Zedeness Race";
		case RU: return "Course Zedaiss";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String language(){
		switch(lang)
		{
		case EN: return "Language : ";
		case RU: return "Язык : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String yourName(){
		switch(lang)
		{
		case EN: return "Your name : ";
		case RU: return "Ваше имя : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}

	public String controls(){
		switch(lang)
		{
		case EN: return "CONTROLS";
		case RU: return "УПРАВЛЕНИЕ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String drop(){
		switch(lang)
		{
		case EN: return "Drop : ";
		case RU: return "Падение : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String left(){
		switch(lang)
		{
		case EN: return "Left : ";
		case RU: return "Влево : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String right(){
		switch(lang)
		{
		case EN: return "Right : ";
		case RU: return "Вправо : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String speedUp(){
		switch(lang)
		{
		case EN: return "Speed Up : ";
		case RU: return "Быстрее : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String rotate(){
		switch(lang)
		{
		case EN: return "Rotate : ";
		case RU: return "Врещение : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String saveChanges(){
		switch(lang)
		{
		case EN: return "Save Changes";
		case RU: return "Сохранить изменения";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String cancel(){
		switch(lang)
		{
		case EN: return "Cancel";
		case RU: return "Отменить";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String defaultString(){
		switch(lang)
		{
		case EN: return "Default";
		case RU: return "По умолчанию";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String badPort(){
		switch(lang)
		{
		case EN: return "Bad port";
		case RU: return "Неправильный порт";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String error(){
		switch(lang)
		{
		case EN: return "Error";
		case RU: return "Ошибка";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String slotTeams(){
		switch(lang)
		{
		case EN: return "Slot / Teams:";
		case RU: return "Слот / Команды:";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String openSlot(){
		switch(lang)
		{
		case EN: return "  < OPEN SLOT >";
		case RU: return "  < ОТКРЫТЫЙ СЛОТ >";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String closeSlot(){
		switch(lang)
		{
		case EN: return "  < CLOSED >";
		case RU: return "  < ЗАКРЫТО >";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String hasLeft(){
		switch(lang)
		{
		case EN: return " has left the lobby.";
		case RU: return " покинул лобби.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String entered(){
		switch(lang)
		{
		case EN: return " has entered the lobby.";
		case RU: return " подключился к лобби.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String kicked(){
		switch(lang)
		{
		case EN: return " has been kicked by the host!";
		case RU: return " был кикнут из лобби!";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String scoreToWin(){
		switch(lang)
		{
		case EN: return "Score to win:";
		case RU: return "Счет для победы:";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String networkPort(){
		switch(lang)
		{
		case EN: return "Network Port # : ";
		case RU: return "Сетевой порт # : ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String warning(){
		switch(lang)
		{
		case EN: return "Warning";
		case RU: return "Предупреждение";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String levelInit(){
		switch(lang)
		{
		case EN: return "Level: 0";
		case RU: return "Уровень: 0";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String linesInit(){
		switch(lang)
		{
		case EN: return "Lines: 0";
		case RU: return "Линии: 0";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String cantPlaySong(){
		switch(lang)
		{
		case EN: return "Your computer can't play the menu song.";
		case RU: return "Ваш копьютер не может играть бла бла бла.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String home(){
		switch(lang)
		{
		case EN: return "Home";
		case RU: return "Домой";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String red(){
		switch(lang)
		{
		case EN: return "Red";
		case RU: return "Красный";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String blue(){
		switch(lang)
		{
		case EN: return "Blue";
		case RU: return "Синий";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String green(){
		switch(lang)
		{
		case EN: return "Green";
		case RU: return "Зеленый";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String teamPlay() {
		switch(lang)
		{
		case EN: return "Team Play: ";
		case RU: return "Командная игра: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String startlvl() {
		switch(lang)
		{
		case EN: return "Start Level: ";
		case RU: return "Начать Уровень: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String start() {
		switch(lang)
		{
		case EN: return "Start";
		case RU: return "Старт";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String options() {
		switch(lang)
		{
		case EN: return "Start Level: ";
		case RU: return "Начать Уровень: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String score() {
		switch(lang)
		{
		case EN: return "Score";
		case RU: return "Счет";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String levelIG() {
		switch(lang)
		{
		case EN: return "Level: ";
		case RU: return "Уровень: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String linesIG() {
		switch(lang)
		{
		case EN: return "Lines: ";
		case RU: return "Линии: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String level() {
		switch(lang)
		{
		case EN: return "Level";
		case RU: return "Уровень";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String youWon() {
		switch(lang)
		{
		case EN: return "You won!";
		case RU: return "Вы выиграли!";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String back() {
		switch(lang)
		{
		case EN: return "Back";
		case RU: return "Назад";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String rankings() {
		switch(lang)
		{
		case EN: return "Rankings:";
		case RU: return "Ранг:";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String youLost() {
		switch(lang)
		{
		case EN: return "You lost!";
		case RU: return "Вы проиграли!";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String settingsString(){
		switch(lang)
		{
		case EN: return "Settings";
		case RU: return "Настройки";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String settings() {
		switch(lang)
		{
		case EN: return "Settings: ";
		case RU: return "Настройки: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String customize() {
		switch(lang)
		{
		case EN: return "Customize";
		case RU: return "Настроить";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String players() {
		switch(lang)
		{
		case EN: return "Players: ";
		case RU: return "Игроки: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String playerName() {
		switch(lang){
		case EN: return "Players Names: ";
		case RU: return "Имена Игроков: ";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String ready(){
		switch(lang) {
		case EN: return "Ready:";
		case RU: return "Готовы:";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String[] sort(){
		switch(lang) {
		case EN: return new String[]{"Human", "Bot","Closed"};
		case RU: return new String[]{"Игрок", "Бот","Закрыто"};
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String[] sort2(){
		switch(lang) {
		case EN: return new String[]{"Bot","Closed"};
		case RU: return new String[]{"Бот","Закрыто"};
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String lobby(){
		switch(lang) {
		case EN: return "Welcome to the Game Lobby - Chat Log:";
		case RU: return "Добро пожаловать в Лобби игры:";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String chatLog(){
		switch(lang) {
		case EN: return "Chat Log:";
		case RU: return "Чат:";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	} 
	
	//----------------------------------------------------
	//  BOTS
	//----------------------------------------------------
	public String bot() {
		switch(lang)
		{
		case EN: return "Bot";
		case RU: return "Бот";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String human() {
		switch(lang)
		{
		case EN: return "Human";
		case RU: return "Игрок";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String closed() {
		switch(lang)
		{
		case EN: return "Closed";
		case RU: return "Закрыто";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String difficulty() {
		switch(lang)
		{
		case EN: return "Difficulty";
		case RU: return "Сложность";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String[] botDifficulty() {	
		String[] En = {"Easy","Medium","Hard","Ridiculously insane"};
		String[] Ru = {"Легкий","Нормальный","Тяжелый ","Смешно безумный"};
		switch(lang) {
		case EN: return En;
		case RU: return Ru;
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String corruptionMsg() {	
		switch(lang) {
		case EN: return "The save file appears to be corrupted.\n"+
						"The game will reset.";
		case RU: return "Файл сохранения кажется был поврежден.\n"+
						"Игра будет сброшена.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String couldntFind() {	
		switch(lang) {
		case EN: return "Couldn't find the specified host.";
		case RU: return "Не могу найти хост.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String noSuchHost() {	
		switch(lang) {
		case EN: return "No Such Host";
		case RU: return "Нет такого хоста";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String errorFromHost() {	
		switch(lang) {
		case EN: return "Error from host";
		case RU: return "Ошибка хоста";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String noMoreOpenSlot() {	
		switch(lang) {
		case EN: return "Could not connect the server because\n" +
						"they are no more open slots.";
		case RU: return "Не могу просоединится к хосту,\n"+
						"потому что нет свободных слотов.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String noMoreSlot() {	
		switch(lang) {
		case EN: return "No more slots";
		case RU: return "Нет больше слотов";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String[] hostJoinOptions() {
		switch(lang) {
		case EN: return new String[]{"Host Game", "Join Game"};
		case RU: return new String[]{"Сервер игры", "Подключиться"};
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String hostOrJoin() {
		switch(lang) {
		case EN: return "Host or Join?";
		case RU: return "Создать или подключиться?";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String hostnameQ() {
		switch(lang) {
		case EN: return "Host name?";
		case RU: return "Имя сервера?";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String enterHostName() {
		switch(lang) {
		case EN: return "Enter the host name or IP address:";
		case RU: return "Введите IP адрес сервера:";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String disconnectFrom() {	
		switch(lang) {
		case EN: return "You've been disconnected \nfrom the server.";
		case RU: return "Вы были отключины от сервера.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String disconnection() {	
		switch(lang) {
		case EN: return "Disconnection";
		case RU: return "Отключение";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String couldntConnect() {	
		switch(lang) {
		case EN: return "Could not connect the server because\n" +
						"the host has given an unusal response.";
		case RU: return "Не удалось установить соединение с сервером, поскольку\n" +
                                                "сервер дал необычный ответ.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	public String kickFromTheServer() {	
		switch(lang) {
		case EN: return "You've been kick \nby the server.";
		case RU: return "Вы были выгнаны из сервера.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	//----------------------------------------------------
	//  GAME MESSAGES
	//----------------------------------------------------
	public String playerWinning(Player plyr) {
		switch(lang)
		{
		case EN: return plyr.name()+" is winning with "+plyr.getScore().getScore()+" points";
		case RU: return plyr.name()+" выиграл со счетом "+plyr.getScore().getScore()+" очков";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String playerWon(Player plyr) {
		switch(lang)
		{
		case EN: return plyr.name()+" won with "+plyr.getScore().getScore()+" points";
		case RU: return plyr.name()+" выиграл с "+plyr.getScore().getScore()+" очками";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
	
	public String playerKO(Player plyr) {
		switch(lang)
		{
		case EN: return plyr.name()+ " is K.O.";
		case RU: return plyr.name()+ " был нокаутирован.";
		default: throw new ClassFormatError("An unknown language has been entered");
		}
	}
        * */
}
